/**
 * classe especifica para validação e calculo do dissidio
 * lógica Modelo (MVC)
 *
 */

package calculodissidio;

/**
 *
 * @author wagner
 */
public class CalcDissidio {

    /**
     * @prova Ao pressionar o botão Calcular, deve-se verificar o TextField Salário
     * e retornar uma mensagem de alarme em um MsgBox conforme cada caso:
     *
     * Se o cargo selecionado for Auxiliar, o salário deve estar na faixa entre
     * R$ 540,00 e R$ 920,00.
     *
     * Se o cargo selecionado for Técnico, o salário deve estar na faixa entre
     * R$ 1500,00 e R$ 3500,00.
     *
     * Se o cargo selecionado for Supervisor, o salário deve estar na faixa entre
     * R$ 2500,00 e R$ 5000,00.
     *
     * Se o cargo selecionado for Gerente, o salário deve estar na faixa entre
     * R$ 4500,00 e R$ 6500,00.
     *
     * @return boolean
     */
    public boolean validaSalario(int id_cargo, double salario){
        boolean retorno = false;
        switch (id_cargo){
            //Auxiliar
            case 0:
                if(salario >= 540 && salario <= 920){
                    retorno = true;
                }
                break;

            //tecnico
            case 1:
                if(salario >= 1500 && salario <= 3500){
                    retorno = true;
                }
                break;

            //supervisor
            case 2:
                if(salario >= 2500 && salario <= 5000){
                    retorno = true;
                }
                break;

            //gerente
            case 3:
                if(salario >= 4500 && salario <= 6500){
                    retorno = true;
                }
                break;
        }
        return retorno;
    }

    /**
     * @prova Se as condições do botão Calcular acima forem atendidas, deve-se calcular
     * o dissídio do colaborador conforme as seguintes regras:
     *  O aumento para o Auxiliar é de 10%.
     *  O aumento para o Técnico é de 8%.
     *  O aumento para o Supervisor é de 6%.
     *  O aumento para o Gerente é de 5%.
     * Em nenhum caso, o valor de aumento pode ultrapassar R$ 300,00.
     * @return double
     */
    public double calculaDissidio(int id_cargo, double salario){
        double retorno = 0;
        switch (id_cargo){
            //Auxiliar
            case 0:
                retorno = salario * 0.1;
                break;

            //tecnico
            case 1:
                retorno = salario * 0.08;
                break;

            //supervisor
            case 2:
                retorno = salario * 0.06;
                break;

            //gerente
            case 3:
                retorno = salario * 0.05;
                break;
        }

        if(retorno > 300){
            retorno = 300;
        }
        return retorno;
    }

    //função auxiliar para a interface, função de carregamento de valores do Modelo (MVC)
    public String getFaixaSalarial(int id_cargo){
        String faixa = "";
        switch(id_cargo){
            case 0:
                faixa = "Para Auxiliar, o salário deve estar na faixa entre R$ 540,00 e R$ 920,00";
                break;
            case 1:
                faixa = "Para Técnico, o salário deve estar na faixa entre R$ 1500,00 e R$ 3500,00";
                break;
            case 2:
                faixa = "Para Supervisor, o salário deve estar na faixa entre R$ 2500,00 e R$ 5000,00";
                break;
            case 3:
                faixa = "Para Gerente, o salário deve estar na faixa entre R$ 4500,00 e R$ 6500,00";
                break;
        }
        return faixa;
    }

    //função auxiliar para a interface, função de carregamento de valores do Modelo (MVC)
    public String getPercDissidio(int id_cargo){
        String perc = "";
        switch(id_cargo){
            case 0:
                perc = "10%";
                break;
            case 1:
                perc = "8%";
                break;
            case 2:
                perc = "6%";
                break;
            case 3:
                perc = "5%";
                break;
        }
        return perc;
    }

    //função auxiliar para a interface, função de carregamento de valores do Modelo (MVC)
    public String getCargo(int id_cargo){
        String cargo = "";
        switch(id_cargo){
            case 0:
                cargo = "Auxiliar";
                break;
            case 1:
                cargo = "Técnico";
                break;
            case 2:
                cargo = "Supervisor";
                break;
            case 3:
                cargo = "Gerente";
                break;
        }
        return cargo;
    }
}
